23

» WarCraft 3 / Большие описания для героев

Похожие вопросы:

ответ
~8gabriel8:
mishanka122:
Если во всех картах одинаковый id, значит покопайся в хеше.
Это как, можно в личку?
Проблему решил, переделав стандартную способность, а не создавая нестандартную. Это почти что панацея от подобных случаев, когда id (ещё называют raw-code) способности меняется.
ответ
Поскольку его не пугает наличие большого влияния промахов на геймплей - скорее всего он делает рпг. Имхо в рпг всегда клево смотрятся тексттаги полученного урона, для создания которых необходимы триггеры на отлов получения урона. А отлавливаемый урон - можно и прохилить.
Для прохила(и вообще всех манипуляций с задержкой в 0.00 сек) лично я юзаю такие костыли:
Либа здесь только для доп табуляции. Я за чистый жасс + дефайны.
library ZeroTimeEvent

    globals
        constant integer ZTEArraySize = 64//Even 32 is alot, 64 is too much! Exactly what I need!
        timer Zero//Used for 0. sec uses
        integer ZTECurrent = 0
        unit array ZTEUnits[ZTEArraySize]
        integer array ZTEIntegers[ZTEArraySize]
        real array ZTEReals[ZTEArraySize]
        trigger array ZTETriggers[ZTEArraySize]
    endglobals
    
    function ZeroTimeEvent takes nothing returns nothing
            loop
                set  ZTECurrent = ZTECurrent - 1
                call TriggerExecute( ZTETriggers[ZTECurrent] )
                exitwhen ZTECurrent < 1
            endloop
    endfunction
    
    #define ZTEAddUnit(u) = {
        set  ZTEUnits[ZTECurrent] = u
    }
    
    #define ZTEAddInteger(i) = {
        set  ZTEIntegers[ZTECurrent] = i
    }
    
    #define ZTEAddReal(r) = {
        set  ZTEReals[ZTECurrent] = r
    }
    
    #define ConfirmZTE(trig) = {
        set  ZTETriggers[ZTECurrent] = trig
        set  ZTECurrent = ZTECurrent + 1
        call TimerStart( Zero, ZeroTime, false, function ZeroTimeEvent )
    }
    
    
    
endlibrary
Пример использования
#define UnitRemoveForceAttack(u) = {
    call UnitAddAbility( u, 'Abun' )
    call UnitRemoveAbility( u, 'Abun' )
         ZTEAddUnit(u)
         ConfirmZTE(CheckIfUnitHasA002)
}
Минус такой системы в необходимости создавать триггер для каждого блока кода, т.к. массивы блоков кода запрещены

23

» WarCraft 3 / Реплики героев

Принятый ответ
Похожие вопросы:

ответ
ilsva, я решил проверить сам. Поставил на пустую карту алтарь, героя и других юнитов, чтобы убить его. Триггер сделал как у тебя, только без условия и издавать звук я делал от алтаря. - Всё работало. Потом поставил условие на тип героя - так же всё работало. Поэтому возможно проблема в том, что ты делаешь издавать звук от триггерного юнита, а он при этом ещё как бы не создан и его позиция не определена. Попробуй сделать издавать звук от алтаря или же перед тем как издавать звук от юнита - попробуй сделать ждать, например 0.5 сек.
ответ
Не тупи. Сделай трансляцию от ТИПА ЮНИТА, а не от конкретного юнита.
ответ
"Набор звуков" нельзя сделать через триггеры, но можно попробовать через импорт файлов заменить стандартные файлы в уже существующих наборах.
Для этого импортируемому файлу надо прописать путь заменяемого.

23

» WarCraft 3 / Зависание

Похожие вопросы:

ответ
Обычно "Свойства игрока" и все, что ниже, зависает не некоторое время от "загруженности" карты. У меня рекорд был, около трех минут грузилось.
ответ
Не юзай TriggerSleepAction и будет тебе счастье. Особенно когда юзаешь глобальные переменные, вполне вероятно, что конфликт
ответ
Идет подгрузка объекта в память, слк оптимизация и Preload в помощь.
ответ
Вопрос закрыт.
ответ
Maniac_91, Дак ведь оживление можно заюзать при условие, что есть рядом чей-то скелет(Труп), иначе способность нельзя юзнуть так как ни кого не удастся оживить.
А у него при любом раскладе она сработает. А при использование отставить приказа,способность выходит из цикла.
Это может быть говорить о том, что у Способность произошло исключение(Трупов то нет) ?

23

» WarCraft 3 / Что случилось с WE?

Похожие вопросы:

ответ
Нашёл решение для тебя.
Пол-ночи провозился, но нашёл. почему-то это стало делом чести - открыть сию карту в редакторе

В общем, берёшь архив из аттача и тупо суёшь папку UI в корень варкрафта. После этого карта будет открываться любым вариантом редактора - как JNGP (любым), так и (даже!) стандартным.
Важно: локальные файлы должны быть разрешены.

Только там такой срач и дичь, что лучше реально своими руками с нуля писать...

23

» WarCraft 3 / Как сделать Квест.

Похожие вопросы:

ответ
Действие-задание выберай на вкус. Про то, чтобы было "Подошёл к чуваку и появилось ещё одно задание", нужно поставить область возле этого чувака, далее сделать триггер с событием-юнит вошёл в зону, дать владельцу входящего юнита задание, такое-то далее, если оно одноразовое-откл триггер. А воскл знак поставь с помощью "Действие-спецэффекты последние", далее в них выбираешь поставить спецэффект над нужным юнитов, переходим в дополнительно-воскл знак. Это скудный вариант,который легче понять новичкам.
ответ
Спецэффекты - Ping Minimap
ответ
для того чтобы сделать эту систему нужно научиться юзать массивы
и навык в гуи стоит повысить
вот статьи
чтобы нельзя было взять квест пока не выполнил/отменил предыдущий нужно просто проверять есть ли у игрока квест на данный момент или нет
ответ
Master113, добавить через "Новое условие" оператор "или" (Там два разных варианта, удобнее "or, multiple conditions" ("или, несколько условий" - как-то так)), туда поместить сравнения для каждого юнита. (Условие "или" будет выполняться, если выполнится хотя бы 1 условие внутри. Для оператора "и" - должны выполняться все условия внутри. Стандартный раздел триггера "Условия" действует как "и").
ответ
Как это сделано у меня в страннике:
Есть области, 1 для каждого НПС,
Есть группа, куда записаны все НПС.
Есть таймер с периодичностью в 3 секунды. Каждый раз идет проверка. Проверятся, что НПС состоит в группе и если случайное число 0-100 меньше и равно 50, то НПС двигается в случайную точку в своей области.
Когда герой начинает говорить, НПС останавливает свой приказ, поворачивается к герою и удаляется из группы, чтобы когда таймер сработал он не убежал.
Соответственно когда разговор окончен, НПС снова добавляется в эту группу.
Все просто.

23

» WarCraft 3 / Отряд

Принятый ответ
Похожие вопросы:

ответ
Частично не понял, тоесть нужно что бы в кинематике был несуществующий юнит?
Допустим в окне кинематики паладин с каким либо именем что то говорит, но на карте его нет. Если да то это Спецэффекты - Transmission From Unit-Type
ответ
А касательно остальной части, если UnitUserData нигде не используется, создаешь массив юнитов и отрядов. Массив юнитов забиваешь своими капитанами. В UnitUserData капитана пихаешь его порядковый номер в массиве. Создаешь группу юнитов для этого капитана.
  1. Добавление через каст способности.
Я бы делал через 2 разные абилки с одной и той же позицией в интерфейсе. Пока нужный тебе юнит не является частью отряда - у него таргетная абилка при касте которой на капитана он добавляется в группу соответствующего капитана и получает 2ю абилку взамен первой.
Касательно выделения этих пехотинцев - можно намутить что-то с передачей контроля или создать триггер, который будет снимать выделение с юнитов у которых есть 2я абилка. Если ты хочешь чтобы по одиночке можно было выделять пехотинцев - можешь создать переменную для каждого игрока с капитанами, куда будет просто записываться последний выбранный юнит. При снятии выделения - проверять не выбран ли этот же юнит, в случае чего не снимать выделение. Правда не уверен будет ли корректно работать :> В крайнем случае - будет работать в три клика вместо двух. Если я не ошибаюсь.
Касательно поведения этих пехотинцев - что-то реально стоящее сделать сложно. Возможно, но мне не с руки все расписывать :> Простейший вариант - приказывать пехотинцам после добавления в группу следовать за капитаном.
  1. Добавление через атаку капитана
Триггер, проверяющий что капитан получил урон или атакован, как угодно. Далее любым способом проверяешь есть ли в группе этого капитана юниты. Если нет - выбираешь всех пехотинцев N радиусе, добавляешь в отряд, заменяешь абилку/либо просто приказываешь кастануть в капитана первую абилку.
ответ
Ну только триггерные системы отрядов, была такая...
Вот пример ссылочка
Были и другие, поиск в помощь.
Вот еще ссылка
ответ
запомнить всех выбранных, затем очистить эту группу, добавить сначала твоего героя, а затем всех остальных
ответ
  • Выбираешь всех целевых юнитов в группу.
  • Создаёшь дамми.
  • Используя ForGroup и GetEnumUnit, применить на каждого юнита в группе заклинание.
  • Очищаешь групппу.
  • Удаляешь группу.
  • Удаляешь дамми.

У дамми-юнита должны стоять настройки анимации, позволяющие применять способности без задержек, у способности не должно быть кулдауна.

23

» WarCraft 3 / Не запускаются карты. Возможно беда со скриптами

Похожие вопросы:

ответ
все карты с кодом,без кода карта не запустится просто
похоже повреждена/повторяется функция конфиг
проверь близард джи на наличие в нём такой функции и проверь папку с игрой,так же проверь их на наличие функций маин и прочих функций которые создаются WE
если не поможет то переустанови варик

23

» WarCraft 3 / Уровень способности

Похожие вопросы:

ответ
опечатка в редакторе (не моя разумеется)
ответ
Оказывается нужно было указать в доступных улучшениях кастера нестандартное улучшение!
В данном случае у некроманта есть улучшение "магия скелетов", так как именно некромант кастует прокачиваемую способность "оживить мёртвых".
ответ
~8gabriel8:
mishanka122:
Если во всех картах одинаковый id, значит покопайся в хеше.
Это как, можно в личку?
Проблему решил, переделав стандартную способность, а не создавая нестандартную. Это почти что панацея от подобных случаев, когда id (ещё называют raw-code) способности меняется.
ответ
Все должно действовать, постоянно именно так и делаю. Триггер в студию.
P. S. Только одна оговорка: на всякий случай будет лучше, если способность, даваемая даммику, заранее будет присутствовать у какого-нибудь юнита на карте (можно нейтрального и/или не способного её скастануть), иначе иногда не исключены ситуации, когда даммик просто не кастует добавленную ему способность вообще (зависимость определить не удалось, абсолютно в одной и той же уже сохраненной и оптимизированной карте может кастовать, а может не кастовать - если не стал кастовать эту абилу в первый раз, то и всю игру - т. е. весь конкретный запуск конкретно этой карты - уже не станет, но добавлением абилы заранее нейтральному зданию, т. е. прелоадом, лечится надёжно).
ответ
Результат бонуса хп Кешируется, поэтом несмотря на уровень абилка всегда дает хп 1 уровня, а вот при ее удалении движок уберет юниту столько хп сколько указано в текущем уровне сплсобности, таким образом мы можем изменять хп юниту. Абилка в 2 лв,на первом уровне бонус маны иди хп 0, на втором обратный тому что М в хотим получить, к примеру если мы хотим получить 150 хп то пишем -150. Вручаем юниту абилку, ставим 2 уровень и тут же удаляем, движок добавит юниту 150 хп.

23

» WarCraft 3 / Передача от отряда

Похожие вопросы:

ответ
Частично не понял, тоесть нужно что бы в кинематике был несуществующий юнит?
Допустим в окне кинематики паладин с каким либо именем что то говорит, но на карте его нет. Если да то это Спецэффекты - Transmission From Unit-Type
ответ
Ivan99, субтитры включи
Умник

23

» WarCraft 3 / Проверьте, пожалуйста, триггеры!

Похожие вопросы:

ответ
если гуи то они утечны как не крути
ибо там локальные переменные не обнуляются
проверил
утечек куча
в основном точки
ответ
Событие каждые 1 сек времени
пауза triggering unit
^ Не имеет смысла, здесь нет triggering unit, исправляй, сообщи об изменениях или неизменениях.
У тя там чета про убийства ещё, но спрятать юнит проиграв анимацию смерти не означает его убийство и из группы он не удаляется, если состоит. Так что имей в виду.
ответ
Есть вариант: сделать триггер с периодическим событием, действие которого будет поднимать камеру обратно каждые (х) секунд. А в своей карте я сделал через диалог.
ответ
Ну только триггерные системы отрядов, была такая...
Вот пример ссылочка
Были и другие, поиск в помощь.
Вот еще ссылка

23

» WarCraft 3 / Создание скиллов.

Похожие вопросы:

ответ
Sergant1000, а от меня нет
это не вопрос а заказ
так что ему туда
пусть выбирает то которое больше понравится
ответ
Nikita_Gamers, ну вот есть неплохая статья xgm.guru/p/wc3/movingsystem
ответ
ахах, ответ в самом вопросе. Создать скилл сопротивление магии с 10ю уровнями, дать его юниту, выставить нужные значения на каждом уровне скилла.

23

» WarCraft 3 / Стандартная способность

Похожие вопросы:

ответ
да
в движке вара
если найдёшь исходник вара
ответ
ии я очень сложный замутил 4х ступенчатый (не для босов)так как при строительстве его я думал что движок будет пулять спеллы,его придёться переписывать,но я нашел решение если за моба стоит комп то спелы во вкладке нейтрально посивные он будет юзать но не все главное условие чтобы был комп назначен
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь
ответ
Насколько я знаю, стандартные способности не наносят урон от характеристик героя. Подобное делается только путем создания триггерных спелов
ответ
XGM Bot:
Похожие вопросы:

ответ
да
в движке вара
если найдёшь исходник вара
ответ
параметры способностей хранятся в slk таблицах в mpq архивах
параметры применения способностей хранятся в game.dll
ответ
Steal nerves:
В натуре баг такой? Проверил только что. Улучшение эльфам можно не делать на доспехи. Короче эльфы читеры
ответ
ии я очень сложный замутил 4х ступенчатый (не для босов)так как при строительстве его я думал что движок будет пулять спеллы,его придёться переписывать,но я нашел решение если за моба стоит комп то спелы во вкладке нейтрально посивные он будет юзать но не все главное условие чтобы был комп назначен
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь


23

» WarCraft 3 / Убрать порчу

Похожие вопросы:

ответ
Момент с порчей и миникартой оказался тем что там высота на уровне воды.
Но саму тень я все равно не могу убрать.
А все вопрос снимаю, это тень от здания
ответ
Fireproof:
Karp:
Maniac_91:
Karp, сейчас неохота ставить) Да я им пока что не планирую пользоваться.
Попробуй создавать порчу в определённой точке - может, в переменных косяк?
попробую этот вариант, например в центре региона какого нибудь, но уже завтра =) отпишусь как проверю.
У тебя макс. лвл = 1, а спеллов для изучения 2. В триггере на изучение спелла первым стоит Ледяной щит:D
и триггерно он не хочет учить второй спел получается? понял. Тогда остаётся установить макс лвл на 10 к примеру, и героям отключить получение опыта через триггер?

23

» WarCraft 3 / Баг какой то

Похожие вопросы:

ответ
EnergyFrost:
quq_CCCP, а для багнутого юнита будет работать GetUnitState хп? Просто тогда будет достаточно 2 проверки, при этом не запоминая хп всех юнитов в группе фениксов.
Если у юнита щас 1 хп. и через 5 секунд снова 1 хп - багнутый (ну либо очень невероятное совпадение для динамического хп феникса)
Работает, 0 хп...
ответ
Проблема решена. Обнаружилась довольно неожиданно - заметил, что во время крита герой не разбивал лицо сам себе, начал искать модификаторы атаки - у героя было 3 пустышки с нулевыми значениями на основе "ракет". При всех пустых значениях вылетает невидимая ракета по самому себе.
ответ
Если способность имеет свой идентификатор приказа, то сделай активацию способности триггерно путем отдачи приказа типа цель-точка, где точку можно взять в твоем случае как координаты юнита-цели. Должно сработать.
ответ
Проблема решается очень просто: отключите оптимизацию скрипта в парсере cJass.
Велики шансы на то, что ниже по коду значение в [1] просто-напросто нигде не используется, и поэтому оптимизатор выпиливает его инициализацию.

Нужен С-подобный синтаксис - пиши на ZINC.
Purge it with fire!

23

» WarCraft 3 / Проблема с моделью эффекта

Похожие вопросы:

ответ
  1. в 1 вопросе может быть лишь 1 вопрос
  2. если для юнита то просто меняй размер юнита в ро иначе смотри пункт 2
  3. раздел 4
  4. уже ответили иначе смотри пункт 2
ответ
незнаю поможет или нет но пробни через кустом скрипт написать это AddUnitAnimationProperties(u, "Alternate", false)
где u - это твой юнит и советую перед ней поставить паузу тригера на 0.1 хотяб
ответ
закрыт по таймауту
ответ
dave_wwid, прикрепляя к "cylinder02" ээфект работает когда модель перемещается в оба направления но изза вращения эффект отображается некорректно. Если прикреплять к другим костям то эффект ленты как и раньше появляется ток когда снаряд движется задом на перед.
Проблему решил поставив в материале галочку на twoside

23

» WarCraft 3 / Сглаз

Похожие вопросы:

ответ
Незнаю как отловить, когда юниты в радиусе волны. Но можно просто двигать точку с той же скоростью что и волна и в том же направлении и выбирать всех в радиусе. Область действия заклинания в РО написана.
ответ
а не вариант прописать герою вторую атаку? и в качестве целей указать деревья
и когда герой бьет по дереву - делаем то что надо

23

» WarCraft 3 / Горение Зданий

Похожие вопросы:

ответ
В редакторе моделей для Вара необходимо создавать точки крепления огня (кости). Они называются sprite.
Цитирую фразу из статьи: Точки крепления и Событийные объекты.
Sprite - крепление для эффекта огня, который появляется при повреждениях, если модель используется для здания или для юнита, классифицируемого в РО как механический.

23

» WarCraft 3 / Улучшение

Принятый ответ
Похожие вопросы:

ответ
Ты добавлял кости? Или через "повышение урона (улучшение)"? Значение последнего у юнита помечено — это добавится "базовый урон".
ответ
NekoriDes:
Тебе нужно именно улучшение или исследование?
Потому что если улучшение, то условие будет выглядеть как-то так: Тип Triggering unit == Юнит, который должен получиться после улучшения.
В редакторе исследования называются улучшениями. Да, мне нужно улучшение
я похоже нашел что искал. нужное условие называлось - "Сравнение типа техники". Этот божественный перевод :/
ответ
DoctorDoza, а, это.. Это не то, что ты подумал.
Здесь пишется текст, который будет виден всем игрокам, когда они наводят мышь на пиктограмму юнита/здания/улучшения, если у него есть требования.
То есть перед требованиями идёт надпись "|Cffffff00Требуется:", где "|Cffffff00" - это цветовой код жёлтого цвета (его можно удалить для экономии места), а "Требуется:" - это текст, который будет виден (его можно прописать частично латиницей, что будет незаметно: "Tpeбyeтcя").
После этой надписи уже пишутся сами требования в столбик.
ответ
Filius Dei:
а если сделать так, юнит изучает улучшение, заблокировать другие улучшения?

23

» WarCraft 3 / Как сделать баланс в карте для героя?

Похожие вопросы:

ответ
Ни разу не делал карты "чисто стандартного жанра". Т.е. общий жанр определить можно всегда, но нужно чтобы можно было выделить что-то, чем твоя карта реально отличается от себе подобных.
Вот, глянь чуть (щас набегут хомячки с возгласами ОЛОЛО РЕКЛАМА ДОК БЛИН КАК НЕ СТЫДНА)

23

» WarCraft 3 / Кнопки постройки

Похожие вопросы:

ответ
Ухаха. Парень, ознакомься, что такое утечки, прикрепление в помощь.
ответ
На ГУИ это делается без всякого custom script, ищешь раздел Игра и там Force UI Key.
Вообще, в ГУИ же поиск текста есть. Мог бы сам найти.
ответ
Можно дать юниту какую-нить абилку и все время через Force UI Key заставлять игрока ее нажимать пока этот юнит выбран
И как только он эту абилку использует, значит меню закрыто

23

» WarCraft 3 / Как узнать тип урона

Похожие вопросы:

ответ
Вот этой системой можно
Ещё у Бородача есть система безорбового отлова урона магический/физический. Но она не ловит тип атаки.
Больше известных мне систем распознавания типа урона нема
ответ
GF RaiseD:
Может, будет полезно: раз, два. Таблицы именно по отдельным скиллам не видел никогда, но этой инфы должно хватить чтоб выяснить это самостоятельно.
ответ
Если очень сильно надо - гугли Easy damage system для разъяснений, вот тебе сама система.